GNU Radio's FUNCUBE Package
fcd_impl.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2020 dl1ksv.
4 *
5 * SPDX-License-Identifier: GPL-3.0-or-later
6 */
7
8#ifndef INCLUDED_FUNCUBE_FCD_IMPL_H
9#define INCLUDED_FUNCUBE_FCD_IMPL_H
10
11#include <gnuradio/audio/source.h>
12#include <gnuradio/logger.h>
13#include <gnuradio/prefs.h>
14#include <funcube/fcd.h>
15#include <funcube/fcd_control.h>
16namespace gr {
17namespace funcube {
18
19class FUNCUBE_API fcd_impl : public fcd
20{
21private:
22 // Nothing to declare in this block.
23
24public:
25 fcd_impl(const std::string device_name = "");
27 /* Public API functions documented in include/fcdproplus/fcd.h */
28 void set_freq(double freq) override;
29 void set_lna_gain(float gain) override;
30 void set_mixer_gain(float gain) override;
31 void set_freq_corr(double ppm) override;
32 void set_dc_corr(double _dci, double _dcq) override;
33 void set_iq_corr(double _gain, double _phase) override;
34
35private:
36 gr::audio::source::sptr fcd_audio; /*!< The audio input source */
37 double d_freq_corr; /*!< The frequency correction in ppm */
38 double d_freq_req; /*!< The latest requested frequency in Hz */
39 fcd_control::sptr fcd_control_block; /*!< The fcd control block */
40 gr::logger_ptr d_logger;
41};
42
43} // namespace funcube
44} // namespace gr
45
46#endif /* INCLUDED_FUNCUBE_FCD_IMPL_H */
#define FUNCUBE_API
Definition api.h:19
std::shared_ptr< fcd_control > sptr
Definition fcd_control.h:25
void set_mixer_gain(float gain) override
Set mixer gain.
void set_dc_corr(double _dci, double _dcq) override
Set DC offset correction.
fcd_impl(const std::string device_name="")
void set_freq(double freq) override
Set frequency with Hz resolution.
void set_freq_corr(double ppm) override
Set new frequency correction.
void set_lna_gain(float gain) override
Set LNA gain.
void set_iq_corr(double _gain, double _phase) override
Set IQ phase and gain balance.
Funcube Dongle source block.
Definition fcd.h:32
Definition fcd.h:15
Definition fcd.h:14